bitkeeper revision 1.1236.1.42 (4224bb8fOnbAClkv82bfZwfayrn5Rw)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Tue, 1 Mar 2005 18:59:27 +0000 (18:59 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Tue, 1 Mar 2005 18:59:27 +0000 (18:59 +0000)
Fix error-code generation in rdmsr_user and wrmsr_user.
Signed-off-by: Keir Fraser <keir.fraser@cl.cam.ac.uk>
xen/include/asm-x86/msr.h

index dd01e9642a0485f8cd77db0eae3673d7c150233f..00d7e69e71845cc433cfa7338f3a7284688bf935 100644 (file)
@@ -12,7 +12,7 @@
                          : "c" (msr), "a" (val1), "d" (val2))
 
 #define rdmsr_user(msr,val1,val2) ({\
-    int _rc = 0; \
+    int _rc; \
     __asm__ __volatile__( \
         "1: rdmsr\n2:\n" \
         ".section .fixup,\"ax\"\n" \
         "   "__FIXUP_ALIGN"\n" \
         "   "__FIXUP_WORD" 1b,3b\n" \
         ".previous\n" \
-        : "=a" (val1), "=d" (val2), "=r" (_rc) \
-        : "c" (msr)); \
+        : "=a" (val1), "=d" (val2), "=&r" (_rc) \
+        : "c" (msr), "2" (0)); \
     _rc; })
 
 #define wrmsr_user(msr,val1,val2) ({\
-    int _rc = 0; \
+    int _rc; \
     __asm__ __volatile__( \
         "1: wrmsr\n2:\n" \
         ".section .fixup,\"ax\"\n" \
@@ -37,8 +37,8 @@
         "   "__FIXUP_ALIGN"\n" \
         "   "__FIXUP_WORD" 1b,3b\n" \
         ".previous\n" \
-        : "=r" (_rc) \
-        : "c" (msr), "a" (val1), "d" (val2)); \
+        : "=&r" (_rc) \
+        : "c" (msr), "a" (val1), "d" (val2), "0" (0)); \
     _rc; })
 
 #define rdtsc(low,high) \